import {getAction} from "@/api/manage";
import moment from 'moment'
// 重复校验
const duplicateCheck = (params) => getAction("/expand/duplicate/check", params);

// 将字符串变成时间
export function parseTimestamp(time) {
  if (time == null) {
    return new Date().getTime();
  }
  return new Date(time).getTime();
}

/**
 * 比较两个字符串形式的时间
 * @param startTime 开始时间
 * @param endTime 结束时间
 * @param formatTime 时间格式 yyyy-MM-dd HH:mm:ss  HH:mm:ss yyyy-MM-dd
 * startTime < endTime 1
 * startTime = endTime 0
 * startTime > endTime -1
 */
export function timeCompareTo(startTime, endTime, formatTime) {
  let start = moment(startTime, formatTime);
  let end = moment(endTime, formatTime);
  if (start > end) {
    return -1;
  }
  if (start < end) {
    return 1;
  }
  return 0;
}

/**
 * 获取两个字符串类型的时间差
 * @param startTime 开始时间
 * @param endTime 结束时间
 * @param formatTime 时间格式 yyyy-MM-dd HH:mm:ss  HH:mm:ss yyyy-MM-dd
 * @param timeType ‘second’ ‘minute’ 选择时间差类型
 */
export function timeDifference(startTime, endTime, formatTime, timeType) {
  let start = moment(startTime, formatTime);
  let end = moment(endTime, formatTime);
  return end.diff(start, timeType);
}

//判空
export function ifNull(text) {
  return text == null || text === undefined ? "" : text;
}

// 将‘逗号’分割的字符串变成数组
export function toArrayComma(text) {
  if (text == null || text === undefined) {
    return [];
  } else {
    return text.split(",");
  }
}

// 将数组变成逗号分隔的字符串
export function getStringByArray(text) {
  let str = "";
  for (let i = 0; i < text.length; i++) {
    str += text[i] + ",";
  }
  if (str.length > 0) {
    str = str.substr(0, str.length - 1);
  }
  return str;
}


/**
 * 将逗号分隔的两个时间字符串变成两个时间对象
 * @param text 逗号分隔的两个时间字符串
 * @param formatTime 时间格式 yyyy-MM-dd HH:mm:ss  HH:mm:ss yyyy-MM-dd
 * return moment的数组
 */
export function momentArray(text, formatTime) {
  let defaultArray = toArrayComma(text);
  if (defaultArray.length === 0) {
    return null;
  }
  let commentArray = new Array(2);
  commentArray[0] = moment(defaultArray[0], formatTime);
  commentArray[1] = moment(defaultArray[1], formatTime);
  return commentArray;
}


//实现表单的重复校验方法
export function validateDuplicateValueCustomSql(tableName, fieldName, fieldVal, dataId, customSql, callback) {
  if (fieldVal) {
    let params = {tableName, fieldName, fieldVal, dataId, customSql};
    duplicateCheck(params).then(res => {
      res['success'] ? callback() : callback(res['message'])
    }).catch(err => {
      callback(err.message || err)
    })
  } else {
    callback()
  }
}








